﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace ITAP.ContourBuilder.Manipulation
{
    /// <summary>
    /// Интерфейс, который должен поддерживаться внешними операциями или другими сущностями. На него идёт завязка 
    /// всего GUI (в контроле, который отвечает за действие, в поле Tag лежит ссылка на объект, реализующий этот интерфейс, 
    /// в билдере компонент идёт завязка обработки событий от щелчка или другого действия на этот элемент, в котором 
    /// есть обработчик, вызывающий Executor для выполнения действия).
    /// </summary>
    public interface IExecutable 
    {
        event ManipulatorEvent StateChanged;
        ContourControl Control { get; set; }
        void Execute();
        void Exit();
        void Cancel();
        Bitmap Icon { get; }
    }
}
